package utlis

import (
	"encoding/json"
	"io/ioutil"
	ziface "zinx/Ziface"

)



/*
	对应全局参数,全局配置模块
*/
type GlovbalObj struct{

	/*
		当前Zinx全局的Server对象
	*/
	Tcpserver ziface.IServer

	Host string	//当前服务器主机监视的IP

	TcpPort int	//当前服务器的port

	Name string	//服务器的名称

	Version string //当前Zinx的版本号

	MaxConn int //当前的服务器最大的连接数

	MaxPackageSize uint //当前Zinx框架数据包的最大值
}



var GlovbalObject *GlovbalObj


//用于从配置文件Zinx.json去加载自定义的参数
func(g* GlovbalObj) Reload(){
	data,err:=ioutil.ReadFile("conf/zinx.json")
	if err!=nil{
		panic(err)
	}
	//解析Json文件,读取到Struct在
	err=json.Unmarshal(data,&GlovbalObject)
	if err!=nil {
		panic(err)
	}

	
}

//提供一个init方法，初始化当前的GlovbalObject，引包时自动调用
//在main函数前执行
func init() {

	GlovbalObject =&GlovbalObj{
		Name: "ZinxServerApp",
		Version: "Zinx0.4",
		TcpPort: 8999,
		Host: "0.0.0.0",
		MaxConn: 1000,
		MaxPackageSize: 4096,
	}
	GlovbalObject.Reload()
}

